Un entero $b$ es divisible por un entero $a$, no cero, si existe un entero $x$ tal que $b = ax$ y se escribe $a\mid b$. En el caso que en que $b$ no sea divisible por $a$ se escribe $a\nmid b$
$a$ es divisor de $b$ o $a$ es factor de $b$
Sí $a\notin\{1,b\}$ entonces $a$ es un divisor no trivial (en algunos textos el nombre de factor esta reservado cuando no eres un divisor trivial, pero no siempre aplica)
import sympy as sp
import random
for i in range(20):
num = random.randint(2,1000)
print(f"Los divisores del número {num} son {sp.divisors(num)}, en total son {sp.divisor_count(num)}")
print(f"\t Sus divisores propios son {sp.proper_divisors(num)}\n")
Los divisores del número 719 son [1, 719], en total son 2 Sus divisores propios son [1] Los divisores del número 947 son [1, 947], en total son 2 Sus divisores propios son [1] Los divisores del número 806 son [1, 2, 13, 26, 31, 62, 403, 806], en total son 8 Sus divisores propios son [1, 2, 13, 26, 31, 62, 403] Los divisores del número 39 son [1, 3, 13, 39], en total son 4 Sus divisores propios son [1, 3, 13] Los divisores del número 729 son [1, 3, 9, 27, 81, 243, 729], en total son 7 Sus divisores propios son [1, 3, 9, 27, 81, 243] Los divisores del número 852 son [1, 2, 3, 4, 6, 12, 71, 142, 213, 284, 426, 852], en total son 12 Sus divisores propios son [1, 2, 3, 4, 6, 12, 71, 142, 213, 284, 426] Los divisores del número 983 son [1, 983], en total son 2 Sus divisores propios son [1] Los divisores del número 680 son [1, 2, 4, 5, 8, 10, 17, 20, 34, 40, 68, 85, 136, 170, 340, 680], en total son 16 Sus divisores propios son [1, 2, 4, 5, 8, 10, 17, 20, 34, 40, 68, 85, 136, 170, 340] Los divisores del número 575 son [1, 5, 23, 25, 115, 575], en total son 6 Sus divisores propios son [1, 5, 23, 25, 115] Los divisores del número 976 son [1, 2, 4, 8, 16, 61, 122, 244, 488, 976], en total son 10 Sus divisores propios son [1, 2, 4, 8, 16, 61, 122, 244, 488] Los divisores del número 290 son [1, 2, 5, 10, 29, 58, 145, 290], en total son 8 Sus divisores propios son [1, 2, 5, 10, 29, 58, 145] Los divisores del número 435 son [1, 3, 5, 15, 29, 87, 145, 435], en total son 8 Sus divisores propios son [1, 3, 5, 15, 29, 87, 145] Los divisores del número 770 son [1, 2, 5, 7, 10, 11, 14, 22, 35, 55, 70, 77, 110, 154, 385, 770], en total son 16 Sus divisores propios son [1, 2, 5, 7, 10, 11, 14, 22, 35, 55, 70, 77, 110, 154, 385] Los divisores del número 246 son [1, 2, 3, 6, 41, 82, 123, 246], en total son 8 Sus divisores propios son [1, 2, 3, 6, 41, 82, 123] Los divisores del número 982 son [1, 2, 491, 982], en total son 4 Sus divisores propios son [1, 2, 491] Los divisores del número 592 son [1, 2, 4, 8, 16, 37, 74, 148, 296, 592], en total son 10 Sus divisores propios son [1, 2, 4, 8, 16, 37, 74, 148, 296] Los divisores del número 626 son [1, 2, 313, 626], en total son 4 Sus divisores propios son [1, 2, 313] Los divisores del número 454 son [1, 2, 227, 454], en total son 4 Sus divisores propios son [1, 2, 227] Los divisores del número 575 son [1, 5, 23, 25, 115, 575], en total son 6 Sus divisores propios son [1, 5, 23, 25, 115] Los divisores del número 182 son [1, 2, 7, 13, 14, 26, 91, 182], en total son 8 Sus divisores propios son [1, 2, 7, 13, 14, 26, 91]
Si $b$ y $a$ son enteros, con $a\neq 0$. Existen enteros $q$ y $r$ tal que $$b = qa +r,\quad 0\leq r<|a|$$
Dependiendo de la literatura, se pueden encontrar diferentes formas del resultado anterior
$b=34$, $a =7$
$b=-25$ $a=-4$
$b=-24$, $a=5$
b = 34
a = 7
print(b//a,b%b)
print("Si tomamos los elementos al contrario")
print(a//b,a%b)
4 0 Si tomamos los elementos al contrario 0 7
b = -25
a = -4
print(b//a,b%a)
print("Si tomamos los elementos al contrario")
print(a//b,a%b)
print("Como combinación es correcto, pero, el resultado no se cumple")
6 -1 Si tomamos los elementos al contrario 0 -4 Como combinación es correcto, pero, el resultado no se cumple
b = -24
a = 5
print(b//a,b%a)
-5 1
Un entero $c$ es un divisor común de $a$ y $b$ si $c\mid a$ y $c\mid b$
$b=10$, $a =15$
$b=-50$ $a=20$
$b=-24$, $a=5$
Si $d = \mathrm{mcd}(a,b)$ entonces existen enteros $s$ y $t$ tal que $$d = sa + tb$$
$gcd(10,15)=5$
$gcd(-50,20)=10$
$gcd(-24,5)=1$
$gcd(2299,627)=209$
sp.gcd(10, 15)
sp.gcd(-50, 20)
sp.gcd(-24, 5)
sp.gcd(2299, 627)
Dados los enteros $a$ y $b$ con $a>0$, se hace una aplicación repetida del algoritmo de la división, para obtener una serie de ecuaciónes $$ \begin{aligned} b &=q_{1} a+r_{1} & 0< r_1
Dependiendo de la literatura, se pueden encontrar diferentes formas del resultado anterior
$gcd(10,15)=5 = (-1)10 +(1)15$
$gcd(-50,20)=10= (-1)(-50) +(-2)20$
$gcd(-24,5)=1= (1)(-24) +(5)5$
$gcd(2299,627)=209= (-1)2299 +(4)627$
a = 10
b = 15
res = sp.gcdex(10,15)
print(res,type(res))
(-1, 1, 5) <class 'tuple'>
res[0] * a + res[1]*b
print(sp.gcdex(-50,20))
print(sp.gcdex(-24,5))
print(sp.gcdex(2299,627))
(-1, -2, 10) (1, 5, 1) (-1, 4, 209)
Los enteres $a$, $b$, diferentes de cero, tienen un multiplo común $c$ si $a\mid c$ y $b\mid c$
Un resultado que se tiene es: $mcd(a,b)mcm(a,b)=|ab|$
$lcm(10,15)=30$
$lcm(-50,20)=100$
$lcm(-24,5)=128$
$lcm(2299,627)=6897$
print(sp.lcm(10,15), "Comprobamos el resultado", sp.gcd(10,15)*sp.lcm(10,15), 10*15)
print(sp.lcm(-50,20), "Comprobamos el resultado", sp.gcd(-50,20)*sp.lcm(-50,20), -50*20)
print(sp.lcm(-24,5), "Comprobamos el resultado", sp.gcd(-24,5)*sp.lcm(-24,5), -24*5)
print(sp.lcm(2299,627), "Comprobamos el resultado", sp.gcd(2299,627)*sp.lcm(2299,627), 2299*627)
30 Comprobamos el resultado 150 150 100 Comprobamos el resultado 1000 -1000 120 Comprobamos el resultado 120 -120 6897 Comprobamos el resultado 1441473 1441473
Se dice que un número $p>1$ es un número primo, en caso que no exista divisor $d$ de $p$ que satisfaga $1
# ??sp.sieve
sp.sieve._list
array('l', [2, 3, 5, 7, 11, 13])
sp.sieve.extend(1000)
sp.sieve._list
array('l', [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997])
list(sp.sieve.primerange(11,50))
[11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47]
for indice in range(1,10):
print(f"El número primo {indice}, es el {sp.prime(indice)}")
El número primo 1, es el 2 El número primo 2, es el 3 El número primo 3, es el 5 El número primo 4, es el 7 El número primo 5, es el 11 El número primo 6, es el 13 El número primo 7, es el 17 El número primo 8, es el 19 El número primo 9, es el 23
for i in range(100,0,-10):
print(f"La cantida de números primos menores a {i} es {sp.primepi(i)}")
La cantida de números primos menores a 100 es 25 La cantida de números primos menores a 90 es 24 La cantida de números primos menores a 80 es 22 La cantida de números primos menores a 70 es 19 La cantida de números primos menores a 60 es 17 La cantida de números primos menores a 50 es 15 La cantida de números primos menores a 40 es 12 La cantida de números primos menores a 30 es 10 La cantida de números primos menores a 20 es 8 La cantida de números primos menores a 10 es 4
for i in range(20):
num = random.randint(2,1000)
consulta = sp.isprime(num)
print(f"¿El número {num} es primo? : {consulta}.")
if consulta:
print(f"El primo anterior es {sp.prevprime(num)}, el primo posterior es {sp.nextprime(num)}\n")
¿El número 119 es primo? : False. ¿El número 902 es primo? : False. ¿El número 84 es primo? : False. ¿El número 981 es primo? : False. ¿El número 511 es primo? : False. ¿El número 753 es primo? : False. ¿El número 351 es primo? : False. ¿El número 517 es primo? : False. ¿El número 697 es primo? : False. ¿El número 823 es primo? : True. El primo anterior es 821, el primo posterior es 827 ¿El número 995 es primo? : False. ¿El número 856 es primo? : False. ¿El número 119 es primo? : False. ¿El número 552 es primo? : False. ¿El número 770 es primo? : False. ¿El número 467 es primo? : True. El primo anterior es 463, el primo posterior es 479 ¿El número 588 es primo? : False. ¿El número 13 es primo? : True. El primo anterior es 11, el primo posterior es 17 ¿El número 910 es primo? : False. ¿El número 390 es primo? : False.
import numpy as np
import plotly.express as px
import pandas as pd
ejecu = 20000
#generamos numeros primos aleatorios entre 2, 100
lista_primos = np.array([sp.randprime(2,100) for i in range(ejecu)])
fig = px.scatter(x = np.linspace(1,ejecu,ejecu),
y = lista_primos,
labels={'x':'Número de iteración', 'y':'Número primo'})
fig.show()
primos, frecuencia = np.unique(lista_primos, return_counts=True)
primos = [str(p) for p in primos]
fig = px.bar(x = primos,
y = frecuencia,
labels={'x':'Número primo', 'y':'Frecuencia'})
fig.show()
for indice in range(1,10):
print(f"El número compuesto {indice}, es el {sp.composite(indice)}")
El número compuesto 1, es el 4 El número compuesto 2, es el 6 El número compuesto 3, es el 8 El número compuesto 4, es el 9 El número compuesto 5, es el 10 El número compuesto 6, es el 12 El número compuesto 7, es el 14 El número compuesto 8, es el 15 El número compuesto 9, es el 16
Si $p\mid a_1a_2\dots a_n$ entonces $p$ divide por lo menos a un factor $a_i$ del producto.
Enteros positivos $a$ y $b$ se dicen qeu son primos relativos (o coprimos) si $\mathrm{mcd}(a,b)=1$
def coprimos(a,b):
return sp.gcd(a,b)==1
print(coprimos(5,23))
print(coprimos(10,1000000))
True False
Todo entero $n>1$ puede expresarse como un producto de primos.
for i in range(20):
num = random.randint(2,1000)
print(f"¿El número {num} es primo? : {sp.isprime(num)}. \n Sus factores primos son {sp.primefactors(num)}\n")
¿El número 425 es primo? : False. Sus factores primos son [5, 17] ¿El número 212 es primo? : False. Sus factores primos son [2, 53] ¿El número 598 es primo? : False. Sus factores primos son [2, 13, 23] ¿El número 181 es primo? : True. Sus factores primos son [181] ¿El número 27 es primo? : False. Sus factores primos son [3] ¿El número 804 es primo? : False. Sus factores primos son [2, 3, 67] ¿El número 985 es primo? : False. Sus factores primos son [5, 197] ¿El número 775 es primo? : False. Sus factores primos son [5, 31] ¿El número 627 es primo? : False. Sus factores primos son [3, 11, 19] ¿El número 326 es primo? : False. Sus factores primos son [2, 163] ¿El número 265 es primo? : False. Sus factores primos son [5, 53] ¿El número 774 es primo? : False. Sus factores primos son [2, 3, 43] ¿El número 872 es primo? : False. Sus factores primos son [2, 109] ¿El número 626 es primo? : False. Sus factores primos son [2, 313] ¿El número 27 es primo? : False. Sus factores primos son [3] ¿El número 411 es primo? : False. Sus factores primos son [3, 137] ¿El número 626 es primo? : False. Sus factores primos son [2, 313] ¿El número 566 es primo? : False. Sus factores primos son [2, 283] ¿El número 346 es primo? : False. Sus factores primos son [2, 173] ¿El número 637 es primo? : False. Sus factores primos son [7, 13]
La función totient de Euler $\phi:\mathbb{Z}^+\rightarrow\mathbb{N}$, dado $n$, $\phi(n)$ es el numero de enteros positivos menores a iguales a $n$ que son coprimos con $n$
Propiedades
for i in range(1,11):
print("totient de",i, "es", sp.totient(i))
totient de 1 es 1 totient de 2 es 1 totient de 3 es 2 totient de 4 es 2 totient de 5 es 4 totient de 6 es 2 totient de 7 es 6 totient de 8 es 4 totient de 9 es 6 totient de 10 es 4
La factorización de cualquier entero positivo $n$ en primos es única independientemente del orden de los primos.
for i in range(20):
num = random.randint(2,1000)
print(f"¿El número {num} es primo? : {sp.isprime(num)}. \n Su factorización es {sp.factorint(num)}\n")
¿El número 18 es primo? : False.
Su factorización es {2: 1, 3: 2}
¿El número 825 es primo? : False.
Su factorización es {3: 1, 5: 2, 11: 1}
¿El número 293 es primo? : True.
Su factorización es {293: 1}
¿El número 226 es primo? : False.
Su factorización es {2: 1, 113: 1}
¿El número 954 es primo? : False.
Su factorización es {2: 1, 3: 2, 53: 1}
¿El número 877 es primo? : True.
Su factorización es {877: 1}
¿El número 660 es primo? : False.
Su factorización es {2: 2, 3: 1, 5: 1, 11: 1}
¿El número 310 es primo? : False.
Su factorización es {2: 1, 5: 1, 31: 1}
¿El número 374 es primo? : False.
Su factorización es {2: 1, 11: 1, 17: 1}
¿El número 54 es primo? : False.
Su factorización es {2: 1, 3: 3}
¿El número 724 es primo? : False.
Su factorización es {2: 2, 181: 1}
¿El número 478 es primo? : False.
Su factorización es {2: 1, 239: 1}
¿El número 132 es primo? : False.
Su factorización es {2: 2, 3: 1, 11: 1}
¿El número 452 es primo? : False.
Su factorización es {2: 2, 113: 1}
¿El número 158 es primo? : False.
Su factorización es {2: 1, 79: 1}
¿El número 344 es primo? : False.
Su factorización es {2: 3, 43: 1}
¿El número 176 es primo? : False.
Su factorización es {2: 4, 11: 1}
¿El número 360 es primo? : False.
Su factorización es {2: 3, 3: 2, 5: 1}
¿El número 658 es primo? : False.
Su factorización es {2: 1, 7: 1, 47: 1}
¿El número 653 es primo? : True.
Su factorización es {653: 1}
El cantidad de número primos es infinita
Existen arbitrariamente grandes vacios en la serie de los números primos.
Notas:
Como $m\mid a-b \Leftrightarrow -m\mid a-b$ solo se toman $m\in \mathbb{Z}^+$
$[a\bmod m]$ denota el residuo de $a$ dividido por $m$
Ejemplos
$ \begin{aligned} &25=4 \bmod 7 \\ &6=1 \bmod 5 \\ &5=5 \bmod 6 \\ &-25=3 \bmod 7 \\ &-6=4 \bmod 5 \\ &-18=0 \bmod 6 \end{aligned} $
Def
La operación modulo genera clases de equivalencia
Propiedades de la suma:
Propiedad de multiplicación:
Porpiedad de potencias:
Supóngase que $a,b,c,d,x,y\in \mathbb{Z}$, entonces:
a. $a\equiv b \bmod m$, $b\equiv a \bmod m$ y $a-b\equiv 0 \bmod m$ son porposiciones equivalentes
b. Si $a\equiv b \bmod m$ y $b\equiv c \bmod m$, entonces $a\equiv c \bmod m$
c. Si $a\equiv b \bmod m$ y $c\equiv d \bmod m$, entonces $ax +cy \equiv bx +dy \bmod m$
d. Si $a\equiv b \bmod m$ y $c\equiv d \bmod m$, entonces $ac \equiv bd \bmod m$
e. Si $a\equiv b \bmod m$ y $d\mid m$, $d>0$, entonces $a\equiv b \bmod d$
Si $p$ es un número primo y $r$ es un entero con $\mathrm{gcd}(r,p)=1$ entonces \begin{equation} r^{p-1}\equiv 1\bmod p \label{fermat} \end{equation}
Demuestra que si $x\equiv y (\bmod m)$ entonces $x \pm k\equiv y\pm k (\bmod m)$ para $k\in\mathbb{Z}$. ¿Que propiedad es un caso particular de este echo?
Construye gráficas para visualizar la sigueinte aproximación asintótica para $\pi(x)$
$$\lim_{x\rightarrow\infty}\pi(x)\frac{\ln(x)}{x} = 1$$
from IPython.core.display import HTML
css_file = 'css/estilo1.css'
HTML(open(css_file, "r").read())